class C:
    a=2
    def __setattr__(self, key, value):
        print("重写setattr方法")
        object.__setattr__(self,key,value)


print(C.__dict__)
c=C()
c.a=3 #对象c重新对属性a进行赋值，因此打印出来的是a=3
print(c.__dict__)

d=C() #对象d没有对属性a进行重新复制，因此还是用类的属性a
print(d.__dict__)#d这个对象里没有自己的命名空间，因此使用父类的
print(d.a)
